fix(templates): templateName and thumb not defined by templates

This commit is contained in:
Akash Yadav
2023-05-18 22:55:17 +05:30
parent 05415d444f
commit 6853352020
8 changed files with 25 additions and 21 deletions
@@ -23,11 +23,14 @@ import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.base.util.AndroidModuleResManager.ResourceType.LAYOUT
import com.itsaky.androidide.templates.base.util.SourceWriter
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
import com.itsaky.androidide.templates.impl.base.writeMainActivity
fun basicActivityProject(): Template {
return baseProject {
templateName = R.string.template_basic
thumb = R.drawable.template_basic_activity
defaultAppModule {
recipe = {
sources {
@@ -23,11 +23,14 @@ import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.models.Dependency
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.base.util.AndroidModuleResManager.ResourceType.NAVIGATION
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
import com.itsaky.androidide.templates.impl.base.writeMainActivity
import com.itsaky.androidide.templates.impl.templateAsset
fun bottomNavActivityProject() = baseProject {
templateName = R.string.template_navigation_tabs
thumb = R.drawable.template_bottom_navigation_activity
defaultAppModule {
recipe = {
sources {
@@ -23,10 +23,13 @@ import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.base.util.AndroidModuleResManager.ResourceType.LAYOUT
import com.itsaky.androidide.templates.base.util.SourceWriter
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
import com.itsaky.androidide.templates.impl.base.writeMainActivity
fun emptyActivityProject(): ProjectTemplate = baseProject {
templateName = R.string.template_empty
thumb = R.drawable.template_empty_activity
defaultAppModule {
recipe = {
sources {
@@ -23,11 +23,14 @@ import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.models.Dependency
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.base.util.AndroidModuleResManager.ResourceType.NAVIGATION
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
import com.itsaky.androidide.templates.impl.base.writeMainActivity
import com.itsaky.androidide.templates.impl.templateAsset
fun navDrawerActivityProject() = baseProject {
templateName = R.string.template_navigation_drawer
thumb = R.drawable.template_blank_activity_drawer
defaultAppModule {
recipe = {
sources {
@@ -19,9 +19,12 @@ package com.itsaky.androidide.templates.impl.noActivity
import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
fun noActivityProjectTemplate() = baseProject {
templateName = R.string.template_no_activity
thumb = R.drawable.template_no_activity
defaultAppModule {
recipe = {
res {
@@ -22,11 +22,14 @@ import com.itsaky.androidide.templates.base.AndroidModuleTemplateBuilder
import com.itsaky.androidide.templates.base.baseProject
import com.itsaky.androidide.templates.base.models.Dependency
import com.itsaky.androidide.templates.base.modules.android.defaultAppModule
import com.itsaky.androidide.templates.impl.R
import com.itsaky.androidide.templates.impl.base.emptyThemesAndColors
import com.itsaky.androidide.templates.impl.base.writeMainActivity
import com.itsaky.androidide.templates.impl.templateAsset
fun tabbedActivityProject() = baseProject {
templateName = R.string.template_tabs
thumb = R.drawable.template_blank_activity_tabs
defaultAppModule {
recipe = {
sources {
@@ -51,7 +51,10 @@ class TemplateBuilderTest {
@Test
fun `root project generator test`() {
val template = testTemplate("Root", generate = false) {
baseProject { }
baseProject {
templateName = -123
thumb = -123
}
}
template.apply {
@@ -97,6 +100,9 @@ class TemplateBuilderTest {
testTemplate("Test", generate = false) {
baseProject {
templateName = -123
thumb = -123
defaultAppModule {
manifest {
addPermission(INTERNET)
@@ -21,9 +21,6 @@ import androidx.test.core.app.ApplicationProvider
import com.google.common.truth.Truth.assertThat
import com.itsaky.androidide.managers.PreferenceManager
import com.itsaky.androidide.preferences.internal.prefManager
import com.itsaky.androidide.templates.base.AndroidModuleTemplateBuilder
import com.itsaky.androidide.templates.base.ModuleTemplateBuilder
import com.itsaky.androidide.templates.base.ProjectTemplateBuilder
import com.itsaky.androidide.tooling.testing.findAndroidHome
import com.itsaky.androidide.utils.Environment
import com.itsaky.androidide.utils.FileProvider
@@ -46,22 +43,6 @@ fun mockPrefManager(configure: PreferenceManager.() -> Unit = {}) {
manager.configure()
}
fun mockTemplateBuilders() {
mockTemplateBuilderConstructor(TemplateBuilder::class)
mockTemplateBuilderConstructor(ProjectTemplateBuilder::class)
mockTemplateBuilderConstructor(ModuleTemplateBuilder::class)
mockTemplateBuilderConstructor(AndroidModuleTemplateBuilder::class)
}
private inline fun <reified T : TemplateBuilder<*>> mockTemplateBuilderConstructor(
klass: KClass<T>
) {
mockConstructors(klass) {
every { anyConstructed<T>().templateName } returns -123
every { anyConstructed<T>().thumb } returns -123
}
}
fun mockTemplateDatas(useKts: Boolean) {
mockTemplateDataConstructor(BaseTemplateData::class, useKts)
mockTemplateDataConstructor(ProjectTemplateData::class, useKts)
@@ -92,7 +73,6 @@ private fun <T : Any> mockConstructors(klass: KClass<T>,
fun testTemplate(name: String, generate: Boolean = true, builder: () -> Template
): Template {
mockPrefManager()
mockTemplateBuilders()
testProjectsDir.apply {
if (exists()) {
delete()